/**
描述
对字符串中的所有单词进行倒排。

  说明：

  1、构成单词的字符只有26个大写或小写英文字母；

  2、非构成单词的字符均视为单词间隔符；

  3、要求倒排后的单词间隔符以一个空格表示；如果原字符串中相邻单词间有多个间隔符时，倒排转换后也只允许出现一个空格间隔符；

  4、每个单词最长20个字母；

  数据范围：字符串长度满足 1 \le n \le 10000 \1≤n≤10000 
  输入描述：
  输入一行，表示用来倒排的句子

  输出描述：
  输出句子的倒排结果

  输入：
  I am a student
  输出：
  student a am I

  输入：
  $bo*y gi!r#l
  输出：
  l r gi y bo
*/
const readline = require('readline')
const rl = readline.createInterface({
  input:process.stdin,
  output:process.stdout
})


function transform(inputStr) {
  // 通过正则匹配， 将所有的非 a-zA-Z 都替换成空格
  inputStr = inputStr.replace(/\W/g, ' ')
  // 前后去空格
  inputStr.trim()
  // 转数组， 并翻转
  inputStr = inputStr.split(' ').reverse().join(' ')
  console.log(inputStr)
}

// 本地测试
// const inputStr = "$bo*y gi!r#l"
// transform(inputStr)

// 提交测试
rl.on('line', (line) => {
  if (line) {
    // 处理接收
    transform(line)
  }
})